package org.jsola.contract.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.contract.constant.ContractType;
import org.jsola.contract.constant.FileType;
import org.jsola.core.dto.BaseDTO;

import javax.validation.constraints.NotNull;
import java.util.List;

import static org.jsola.contract.example.ContractExample.E_SUBJECT_ID;
import static org.jsola.contract.example.ContractExample.N_SUBJECT_ID;

/**
 * @author JanusMix
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【合同下载】的参数")
@Data
public class ContractDownloadDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiParam(value = "下载后压缩包名称")
    private String zipName;

    @ApiParam(value = "要下载的合同id集合,有此项时,只根据此项下载,没有再根据其他条件匹配")
    private List<Long> contractIdList;

    @ApiParam(value = "合同编号或名称或签署编号")
    private String contractNameOrNoOrSignNo;

    @ApiParam(value = "状态，1待员工签署，2待公司签署，3签署完成，-1签署失败")
    private Integer status;

    @ApiParam(value = "合同所属业务Id,例如:公司id", required = true)
    private String subjectId;

    @ApiParam(value = N_SUBJECT_ID + "（可以传多个）", example = E_SUBJECT_ID, required = true)
    private List<String> subjectIds;

    @ApiParam(value = "合同类型", allowableValues = FileType.VALUES_STR)
    private String fileType;

    @ApiParam(value = "合同类型,线下签署、电子签署等", allowableValues = ContractType.VALUES_STR)
    private Integer contractType;
}

